# test02_subprocess.py
# 编写一个函数：
# - 创建系统用户(user1~user10)
#       并且给每一个用户配置8位随机密码
# - 并将用户信息写到文件(/opt/user.txt)中进行保存
# def useradd()
#   1. id 用户名,执行失败,则用户名可以创建,useradd 用户名
#   2. echo 密码|passwd --stdin 用户名
#   3. 追加用户信息到指定的文件   mode="a"
import random, subprocess
from string import ascii_letters, digits

def get_pwd(n=8):
    passwd = ""
    for i in range(n):
        tmp = random.choice(ascii_letters+digits)
        passwd += tmp  # passwd=passwd+tmp
    return passwd
def useradd(user, pwd):
    data = subprocess.run(
        f"id {user} &> /dev/null", shell=True)
    if data.returncode == 0:  # 用户已存在
        print(f"用户已存在: {user}")
    else:  # 用户不存在
        subprocess.run(f"useradd {user}", shell=True)
        subprocess.run(
            f"echo {pwd}|passwd --stdin {user}",
            shell=True)
        with open("/opt/user.txt", mode="a") as fw:
            fw.write(f"{user}:\t{pwd}\n")
if __name__ == '__main__':
    userlist = [f"user{i}" for i in range(1, 11)]
    for name in userlist:
        useradd(name, get_pwd())  # 调用useradd函数








